import Book.BookList;
import User.ManagerUser;
import User.NormalUser;
import User.User;

import java.util.Scanner;

/**
 * Description:
 * Date: 2025-10-18
 * Time: 16:46
 */
public class Test {

    public static User login() {
        System.out.println("请输入你的名字：");
        Scanner scanner = new Scanner(System.in);
        String name  = scanner.nextLine();
        System.out.println("请选择你的身份：");
        System.out.println("****** 1.普通用户   2.管理员 ******");
        int choic = scanner.nextInt();
        if(choic == 1){
            return new NormalUser(name);
        }else {
            return new ManagerUser(name);
        }
    }


    public static void main(String[] args) {
        BookList bookList = new BookList();
        //此时说明user中存的时我当前身份的引用
        User user = login();
        while (true){


        int choic = user.meun();
        //要根据choic返回值看调用 哪个对象 的 哪个方法
        //将来要做的动作是，通过user调用某个方法，将choic放进去来实现我的操作

        /*
        * 1.哪个对象
        *    user中已存在
        *
        * 2.哪个方法？
        *  2.1 你得先确定调用的对象中存在这些方法
        *  2.2 在哪里写？-->构造方法中写，当对象实例化的同时，也同时存放了这些方法  （通过数组实现）
        *
        * */
        user.doOperation(choic, bookList);
        //到了这里，整体的框架搭好了。 （是框架在调用你的代码，不是你调用框架）
        }
    }
}
